package org.example.utils;

import cn.hutool.crypto.digest.DigestUtil;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;

/**
 * jwt工具类
 */
public class JwtUtil {
    private static final String SECRET_KEY = "kj5ljk5cjv7kdi8f7j8wif885fd"; //token加密密钥
    private static final String PRIVATE_KEY = "password123456"; //密码加密密钥

    /**
     * 生成token
     * @param data
     * @return
     */
    public static String createToken(String data){
        return Jwts.builder().signWith(SignatureAlgorithm.HS512,SECRET_KEY).setSubject(data).compact();
    }

    /**
     * 从token中获得信息
     * @param token
     * @return
     */
    public static String get(String token){
        return Jwts.parser().setSigningKey(SECRET_KEY).parseClaimsJws(token).getBody().getSubject();
    }

    /**
     * 密码加密
     * @param password
     * @return
     */
    public static String createEncodePassword(String password){
        return Jwts.builder().signWith(SignatureAlgorithm.HS512,PRIVATE_KEY).setSubject(password).compact();
    }

    /**
     * 解密 加密过的密码
     * @param encodePassword
     * @return
     */
    public static String decodePassword(String encodePassword){
        return Jwts.parser().setSigningKey(PRIVATE_KEY).parseClaimsJws(encodePassword).getBody().getSubject();
    }


    public static void main(String[] args) {

    }
}

